#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=8e5+5;
inline int read(){
	int x=0,f=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
	while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-48,ch=getchar();}
	return x*f;
}
int n,us[N],vs[N],sb[N];
vector<pair<int,int> > e[N];

int fa[N],sum[N][21],g[N][21],gs[21],gk[21],S;

void dfs1(int u,int f){
	fa[u]=f;
	for(pair<int,int> pl:e[u]){
		int v=pl.first,w=pl.second;
		if(v==f) continue;
		dfs1(v,u);
		sum[u][w]++;
		for(int j=1;j<=20;j++)
			sum[u][min(w,j)]+=sum[v][j];
	}
}
void solve(int u,int f){
	for(int j=1;j<=20;j++) g[u][j]+=sum[u][j],S+=g[u][j]*j;

	for(pair<int,int> pl:e[u]){
		int v=pl.first,w=pl.second;
		if(v==f) continue;
		for(int j=1;j<=20;j++) gs[j]=g[u][j],gk[j]=sum[v][j];
		gs[w]--;
		sb[v]+=w;
		for(int j=1;j<=20;j++) gs[min(w,j)]-=sum[v][j];

		for(int i=1;i<=20;i++) sb[v]+=gs[i]*min(i,w);
		for(int i=1;i<=20;i++) sb[v]+=sum[v][i]*min(i,w);

		for(int j=w+1;j<=20;j++) gs[w]+=gs[j],gs[j]=0;
		for(int j=w+1;j<=20;j++) gk[w]+=gk[j],gk[j]=0;

		for(int j=1;j<=w;j++) 
			for(int k=1;k<=w;k++)
				sb[v]+=gs[j]*gk[k]*min(j,k);

		gs[w]++;
		for(int j=w+1;j<=20;j++) gs[w]+=gs[j],gs[j]=0;
		for(int j=1;j<=20;j++) g[v][j]=gs[j];
		solve(v,u);
	}
}

signed main(){
	freopen("tatooine.in","r",stdin);
	freopen("tatooine.out","w",stdout);
	n=read();
	for(int u,v,w,i=1;i<n;i++){
		u=read(),v=read(),w=read();
		e[u].emplace_back(v,w);
		e[v].emplace_back(u,w);
		us[i]=u,vs[i]=v;
	}	
	dfs1(1,0);
	solve(1,0);
	S/=2;
	for(int i=1;i<n;i++){
		int p=us[i]==fa[vs[i]]?vs[i]:us[i];
		printf("%lld\n",S-sb[p]);
	}
	return 0;
}